home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / utils / bibclean / ostops20.h < prev    next >
C/C++ Source or Header  |  1992-10-06  |  9KB  |  254 lines

  1. /* -*-C-*- ostops20.h */
  2. /*-->ostops20*/
  3. /**********************************************************************/
  4. /******************************* ostops20 *****************************/
  5. /**********************************************************************/
  6.  
  7. #ifndef OSTOPS20_H_DEFINED_
  8. #define OSTOPS20_H_DEFINED_
  9.  
  10. /* $Id: ostops20.h,v 1.4 1992/10/08 01:42:01 beebe Exp beebe $
  11.  * $Log: ostops20.h,v $
  12.  * Revision 1.4  1992/10/08  01:42:01  beebe
  13.  * Update for C++.
  14.  *
  15.  * Revision 1.3  1992/03/10  14:13:53  beebe
  16.  * *** empty log message ***
  17.  *
  18.  * Revision 1.2  1992/02/29  19:42:20  beebe
  19.  * Update for version 3.0.114 [29-Feb-1992] following two-month
  20.  * major overhaul and compilation testing on numerous machines.
  21.  *
  22.  * Revision 1.2  1992/02/29  19:42:20  beebe
  23.  * Update for version 3.0.114 [29-Feb-1992] following two-month
  24.  * major overhaul and compilation testing on numerous machines.
  25.  *
  26.  * Revision 1.1  1992/02/29  19:13:19  beebe
  27.  * Initial revision
  28.  *
  29.  * Revision 1.1  1992/02/29  19:13:19  beebe
  30.  * Initial revision
  31.  *
  32.  */
  33.  
  34. /***********************************************************************
  35. **
  36. **  Adapted for the DEC-20 TOPS-20  operating system with Jay  Lepreau's
  37. **  PCC-20  by  Nelson  H.F.    Beebe,  College  of  Science   Computer,
  38. **  University of Utah, Salt Lake City, UT 84112, Tel: (801) 581-5254.
  39. **
  40. **  The PCC_20 switch is  used to get around  variations on the  DEC-20.
  41. **  The major one is  that text files have  7-bit bytes, while the  .DVI
  42. **  file and the font files have 8-bit bytes.  For the latter, we use  a
  43. **  routine f20open which provides  the necessary interface for  opening
  44. **  with a  different byte size.  PCC-20 follows many other C  compilers
  45. **  in that only the first 8 characters of identifiers are looked at, so
  46. **  massive substitutions  were  necessary  in the  file  commands.h  to
  47. **  shorten the long names there.
  48. **
  49. **  The PCC_20 switch is also used  to get variant font directory  names
  50. **  and to select TOPS-20 jsys  code.  TOPS-20 is a wonderous  operating
  51. **  system with  capabilities far  beyond  most of  its  contemporaries.
  52. **  Like Topsy, it  just grew, and  consequently, its many  capabilities
  53. **  are not  well  integrated.     The terminal  control  jsys'es  (MTOPR,
  54. **  RFMOD, SFMOD, STPAR, RFCOC, SFCOC and TLINK) are particularly poorly
  55. **  done -- RFMOD returns  the JFN mode word,  particular bits of  which
  56. **  must be set by SFMOD,  STPAR, and TLINK.  Why  could there not be  a
  57. **  "return  the  terminal  state"  and  "restore  the  terminal  state"
  58. **  jsys'es?  Some of this  may in fact be  already integrated into  the
  59. **  PCC-20 C run-time library, but since it is totally undocumented  (an
  60. **  all-too common problem with C),  it is essentially unusable in  that
  61. **  form.
  62. **
  63. **  The OS_TOPS20 switch is used in one place to get ioctl.h included at
  64. **  the right point, and in several places to get error messages  output
  65. **  with Tops-20 conventions in  column 1: query  (?)  causes batch  job
  66. **  abort, percent (%) flags a warning.
  67. **
  68. ***********************************************************************/
  69.  
  70. #if    KCC_20
  71. /* KCC wants all #if symbols defined before use. */
  72.  
  73. #ifdef CACHE_FONTS
  74. #undef CACHE_FONTS
  75. #endif /* CACHE_FONTS */
  76.  
  77. #define CACHE_FONTS 0            /* cannot support this yet */
  78. #endif /* KCC_20 */
  79.  
  80. #if    PCC_20
  81.  
  82. #ifdef ARITHRSHIFT
  83. #undef ARITHRSHIFT
  84. #endif /* ARITHRSHIFT */
  85.  
  86. #define ARITHRSHIFT    0        /* PCC-20 uses logical right shift */
  87.  
  88. #if    PCC_20
  89.  
  90. #ifdef CACHE_FONTS
  91. #undef CACHE_FONTS
  92. #endif /* CACHE_FONTS */
  93.  
  94. #define CACHE_FONTS    1
  95. #endif /* PCC_20 */
  96.  
  97. #ifdef DISKFULL
  98. #undef DISKFULL
  99. #endif /* DISKFULL */
  100.  
  101. #define DISKFULL(fp)    ferror(fp)    /* PCC-20 does not always set errno */
  102. #endif /* PCC_20 */
  103.  
  104. #define DVIHELP    "help dvi\nor\ntype hlp:dvi.hlp\nor\nxinfo g(dvi)"
  105.  
  106. #ifndef ENV_SYSPATH            /* can override at compile time */
  107. #define ENV_SYSPATH    "SYS"
  108. #endif /* ENV_SYSPATH */
  109.  
  110. #ifdef ERRSUFFIX
  111. #undef ERRSUFFIX
  112. #endif /* ERRSUFFIX */
  113.  
  114. #define ERRSUFFIX    "err.-1"    /* to force new generation */
  115.  
  116. #ifndef FONTFMT                /* can be set at compile time */
  117. #define FONTFMT        "%n.%dpk;%n.%dgf;%n.%mpxl;%n.vf;%n.tfm"
  118. #endif /* FONTFMT */
  119.  
  120. #ifdef FOPEN_
  121. #undef FOPEN_
  122. #endif /* FOPEN_ */
  123.  
  124. #define FOPEN_        f20open        /* private version for 8-bit binary */
  125.  
  126. #ifndef FSMAPFILE            /* can be set at compile time */
  127. #define FSMAPFILE    "texfiles.map"
  128. #endif /* FSMAPFILE */
  129.  
  130. #define HOST_WORD_SIZE    36
  131.  
  132. #ifndef PSMAPFILE            /* can be set at compile time */
  133. #define PSMAPFILE    "psfonts.map"
  134. #endif /* PSMAPFILE */
  135.  
  136. #ifndef PS_MAXWIDTH
  137. #define PS_MAXWIDTH    72
  138. #endif /* PS_MAXWIDTH */
  139.  
  140. #ifndef PS_SHORTLINES
  141. #define PS_SHORTLINES    1
  142. #endif /* PS_SHORTLINES */
  143.  
  144. #if    PCC_20
  145.  
  146. #ifdef READ
  147. #undef READ
  148. #endif /* READ */
  149.  
  150. #define READ        _read        /* fast version with one system call */
  151.                     /* and single buffering */
  152. #endif /* PCC_20 */
  153.  
  154. #define SEP_COMP " ;,|"    /* separators between filename components */
  155. #define SEP_PATH ":>"    /* separators between directory path and filename */
  156.             /* first char is what we default to */
  157.  
  158. #undef SPOOLFMT
  159. #define SPOOLFMT    "DVISPOOL: %s\n"
  160.  
  161. #ifndef SUBEXT                /* can be set at compile time */
  162. #define SUBEXT        ".sub"
  163. #endif /* SUBEXT */
  164.  
  165. #ifndef SUBNAME                /* can be set at compile time */
  166. #define SUBNAME        "texfonts"
  167. #endif /* SUBNAME */
  168.  
  169. #ifndef TEXFONTS            /* can be set at compile time */
  170. #define TEXFONTS    ENV_TEXFONTS
  171. #endif /* TEXFONTS */
  172.  
  173. #ifndef TEXINPUTS            /* can be set at compile time */
  174. #define TEXINPUTS    ENV_TEXINPUTS
  175. #endif /* TEXINPUTS */
  176.  
  177. #ifndef TFMFMT                /* can be set at compile time */
  178. #define TFMFMT        "%n.tfm"
  179. #endif /* TFMFMT */
  180.  
  181. /**********************************************************************/
  182. /* The following definitions (down to the endif) are taken from */
  183. /* monsym.h.   It is too big for CPP to handle, so this kludge is */
  184. /* necessary until CPP's tables can be enlarged. */
  185.  
  186. /* selected fields for CHFDB% */
  187. #define CF_nud        01:35-0        /* no update directory */
  188. #define CF_dsp        0777:35-17    /* fdb displacement */
  189. #define CF_jfn        0777777:35-35    /* jfn */
  190.  
  191. #define FBbyv        011        /* retention+bytesize+mode,,# of pages*/
  192. #define FB_ret        077:35-5    /* retention count */
  193.  
  194. /* tty mode definitions */
  195.  
  196. #define MOrlw        030        /* read width */
  197. #define MOslw        031        /* set width */
  198. #define MOrll        032        /* read length */
  199. #define MOsll        033        /* set length */
  200.  
  201. #define MOsnt        034        /* set tty non-terminal status */
  202. #define MOsmn        01        /* no system messages(i.e. suppress) */
  203. #define MOsmy        00        /* yes system messages(default) */
  204. #define MOrnt        035        /* read tty non-terminal status */
  205.  
  206. /* fields of jfn mode word */
  207.  
  208. #define TT_osp        01:35-0        /* output suppress */
  209. #define TT_mff        01:35-1        /* mechanical formfeed present */
  210. #define TT_tab        01:35-2        /* mechanical tab present */
  211. #define TT_lca        01:35-3        /* lower case capabilities present */
  212. #define TT_len        0177:35-10    /* page length */
  213. #define TT_wid        0177:35-17    /* page width */
  214. #define TT_wak        017:35-23    /* wakeup field */
  215. #define TT_wk0        01:35-18    /* wakeup class 0 (unused) */
  216. #define TT_ign        01:35-19    /* ignore tt_wak on sfmod */
  217. #define TT_wkf        01:35-20    /* wakeup on formating control chars */
  218. #define TT_wkn        01:35-21    /* wakeup on non-formatting controls */
  219. #define TT_wkp        01:35-22    /* wakeup on punctuation */
  220. #define TT_wka        01:35-23    /* wakeup on alphanumerics */
  221. #define TT_eco        01:35-24    /* echos on */
  222. #define TT_ecm        01:35-25    /* echo mode */
  223. #define TT_alk        01:35-26    /* allow links */
  224. #define TT_aad        01:35-27    /* allow advice (not implemented) */
  225. #define TT_dam        03:35-29    /* data mode */
  226. #define TTbin        00        /* binary */
  227. #define TTasc        01        /* ascii */
  228. #define TTato        02        /* ascii and translate output only */
  229. #define TTate        03        /* ascii and translate echos only */
  230. #define TT_uoc        01:35-30    /* upper case output control */
  231. #define TT_lic        01:35-31    /* lower case input control */
  232. #define TT_dum        03:35-33    /* duplex mode */
  233. #define TTfdx        00        /* full duplex */
  234. #define TT0dx        01        /* not used, reserved */
  235. #define TThdx        02        /* half duplex (character) */
  236. #define TTldx        03        /* line half duplex */
  237. #define TT_pgm        01:35-34    /* page mode */
  238. #define TT_car        01:35-35    /* carrier state */
  239.  
  240. /* tlink */
  241.  
  242. #define TL_cro        01:35-0        /* clear remote to object link */
  243. #define TL_cor        01:35-1        /* clear object to remote link */
  244. #define TL_eor        01:35-2        /* establist object to remote link */
  245. #define TL_ero        01:35-3        /* establish remote to object link */
  246. #define TL_sab        01:35-4        /* set accept bit for object */
  247. #define TL_abs        01:35-5        /* accept bit state */
  248. #define TL_sta        01:35-6        /* set or clear advice */
  249. #define TL_aad        01:35-7        /* accept advice */
  250. #define TL_obj        0777777:35-35    /* object designator */
  251.  
  252.  
  253. #endif /* OSTOPS20_H_DEFINED_ */
  254.